/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nexus.adec;

import control.UserBean;
import java.util.ArrayList;
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
import javax.faces.event.ActionEvent;
import javax.swing.JOptionPane;

/**
 *
 * @author juampi
 */
public class FiltroCarrera {

    private String nombreCarrera;
    private String codigoCarrera;
    private String idDocente;
    private String codigoEspacio;
    private boolean mostrarMaterias;
    private ArrayList<FiltroMateria> materias;


    public FiltroCarrera(String nombreCarrera, String codigoCarrera, String idDocente,String codigoEspacio) {
        this.nombreCarrera = nombreCarrera;
        this.codigoCarrera = codigoCarrera;
        this.idDocente = idDocente;
        this.codigoEspacio = codigoEspacio;
        materias = new ArrayList<FiltroMateria>();
        ArrayList<Materia> ms = GestorEspacioDB.getInstance().listarMateriasEspacio(getUserBean().getCodigoCurso(), codigoCarrera);
        for (Materia materia : ms) {
            FiltroMateria itemM = new FiltroMateria(idDocente, codigoCarrera,materia.getCodigoMateria(),materia.getNombreMateria(),getUserBean().getCodigoCurso());
            materias.add(itemM);
        }
    }

    /**
     * @return the nombreCarrera
     */
    public String getNombreCarrera() {
        return nombreCarrera;
    }

    /**
     * @param nombreCarrera the nombreCarrera to set
     */
    public void setNombreCarrera(String nombreCarrera) {
        this.nombreCarrera = nombreCarrera;
    }

    /**
     * @return the mostrarMaterias
     */
    public boolean isMostrarMaterias() {
        return mostrarMaterias;
    }

    /**
     * @param mostrarMaterias the mostrarMaterias to set
     */
    public void setMostrarMaterias(boolean mostrarMaterias) {
        this.mostrarMaterias = mostrarMaterias;
    }

    /**
     * @return the idDocente
     */
    public String getIdDocente() {
        return idDocente;
    }

    /**
     * @param idDocente the idDocente to set
     */
    public void setIdDocente(String idDocente) {
        this.idDocente = idDocente;
    }

    /**
     * @return the codigoCarrera
     */
    public String getCodigoCarrera() {
        return codigoCarrera;
    }

    /**
     * @param codigoCarrera the codigoCarrera to set
     */
    public void setCodigoCarrera(String codigoCarrera) {
        this.codigoCarrera = codigoCarrera;
    }

    /**
     * @return the materias
     */
    public ArrayList<FiltroMateria> getMaterias() {
        if(!codigoEspacio.equalsIgnoreCase(getUserBean().getCodigoCurso())){
            materias = new ArrayList<FiltroMateria>();
            ArrayList<Materia> ms = GestorEspacioDB.getInstance().listarMateriasEspacio(getUserBean().getCodigoCurso(), codigoCarrera);
            for (Materia materia : ms) {
                FiltroMateria itemM = new FiltroMateria(idDocente, codigoCarrera,materia.getCodigoMateria(),materia.getNombreMateria(),getUserBean().getCodigoCurso());
                materias.add(itemM);
            }
        }
        return materias;
    }

    /**
     * @param materias the materias to set
     */
    public void setMaterias(ArrayList<FiltroMateria> materias) {
        this.materias = materias;
    }
    public void actionMostrarmaterias(ActionEvent event) {
        mostrarMaterias = true;
        //JOptionPane.showMessageDialog(null,"el mostrar es "+mostrarMaterias);
    }
    public void actionNoMostrarmaterias(ActionEvent event) {
        mostrarMaterias = false;
    }
    public UserBean getUserBean() {
        FacesContext context = FacesContext.getCurrentInstance();
        VariableResolver vr = context.getApplication().getVariableResolver();
        return (UserBean)vr.resolveVariable(context, "userBean");
    }

    /**
     * @return the codigoEspacio
     */
    public String getCodigoEspacio() {
        return codigoEspacio;
    }

    /**
     * @param codigoEspacio the codigoEspacio to set
     */
    public void setCodigoEspacio(String codigoEspacio) {
        this.codigoEspacio = codigoEspacio;
    }
}
